// 上面这个代码处理过度动画（默认加上不用管）
document.addEventListener('DOMContentLoaded', () => {
  setTimeout(() => {
    document.body.classList.add('sidenav-pinned')
    document.body.classList.add('ready')
  }, 200)
})

// ------------------------ axios 配置 
axios.defaults.baseURL = 'http://ajax-api.itheima.net'

// 添加请求拦截器
axios.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  config.headers.Authorization = localStorage.getItem('token')
  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});


// 添加响应拦截器
axios.interceptors.response.use(function (response) {
  // 2xx 范围内的状态码都会触发该函数。
  // 对响应数据做点什么
  return response;
}, function (error) {
  // 超出 2xx 范围的状态码都会触发该函数。
  // console.dir(error)
  if (error.response.status === 401) {
    // 响应回来 401 状态码，说明token是假的，或者过期的
    // 需要跳转到登录页，重新登录，重新登录就可以获取到新的token
    localStorage.removeItem('token')
    location.href = './login.html'
  }
  // 对响应错误做点什么
  return Promise.reject(error);
});


// 显示用户名和退出
// 代码之所以放到这里，是因为 index.html 和 student.html都要做这个功能
// 1. 显示用户名，思路是：登录后把用户名存到本地存储；到 index.html 和 student.html 页面取出来用
let username = document.querySelector('#username')
if (username) {
  username.innerHTML = localStorage.getItem('username')

  // 2. 退出功能
  document.querySelector('#logout').addEventListener('click', function () {
    // 2.0 可选，加一个询问，是否要退出
    // console.log(confirm('你确定要退出吗'))
    if (!confirm('你确定要退出吗')) return
    // 退出和登录刚好相反；
    // （登录后，存了token、存了用户名、跳转到了index.html）
    // （退出后，移除token、移除用户名、跳转到了login.html）
    localStorage.removeItem('token')
    localStorage.removeItem('username')
    location.href = './login.html'
  })
}

